﻿Public Class frmPakowanieSzukanie

    Private mvarSzukajOpakowania As clsSzukaniePakowania
    Private mvarDbHolder As clsDataBase
    Private mvarWyznUruchomienia As Boolean
    Private mvarWyznFrm As Boolean
    Private mvarNumerPozycji As Integer = 0
    Private mvarId As Integer = -1


    Public Sub New()

        InitializeComponent()
        mvarDbHolder = New clsDataBase(VAR_CONNECTION_PARAMETERS, VAR_ERROR_HANDLER)

    End Sub


    Public Sub New(ByVal WyznFrmZlecenia As Boolean, ByVal Id As Integer)

        Me.New()
        mvarWyznFrm = WyznFrmZlecenia
        mvarId = Id

    End Sub

    Private Sub ZnajdzOpakowanie()

        If dgvInformacje.Rows.Count > 0 Then
            For lvarI As Integer = 0 To dgvInformacje.Rows.Count - 1
                If CInt(dgvInformacje.Rows(lvarI).Cells("colIdPakowania").Value) = mvarId Then

                    dgvInformacje.ClearSelection()
                    dgvInformacje.Rows.Item(lvarI).Selected = True
                    If lvarI > 5 Then
                        dgvInformacje.FirstDisplayedScrollingRowIndex = lvarI - 5
                    Else
                        dgvInformacje.FirstDisplayedScrollingRowIndex = 0
                    End If
                    Exit For
                End If
            Next
        End If

    End Sub

    Private Sub Szukaj()

        Dim lvarCommand As String
        Dim lvarI As Integer
        Dim lvarWyzn As Boolean = False

        If txtNazwa.Text = String.Empty Then
            lvarCommand = String.Empty
        Else
            lvarCommand = lvarCommand + " WHERE"
            If txtNazwa.TextLength > 0 Then
                lvarCommand = lvarCommand + " UPPER (pakowanie.nazwa) LIKE UPPER ('" & txtNazwa.Text & "%')"
                lvarWyzn = True
            End If
        End If
        mvarSzukajOpakowania = New clsSzukaniePakowania
        mvarSzukajOpakowania.Szukaj(mvarDbHolder, VAR_ERROR_HANDLER, lvarCommand)

        dgvInformacje.Rows.Clear()
        If mvarSzukajOpakowania.Opakowanie.Rows.Count = 0 And mvarWyznUruchomienia = False Then
            MessageBox.Show("Nie ma takich jednostek.", "WIREMET")
        Else
            For Each lvarRow As DataRow In mvarSzukajOpakowania.Opakowanie.Rows
                lvarI += 1
                dgvInformacje.Rows.Add(lvarI, lvarRow.Item("id_pakowania"), lvarRow.Item("nazwa"))
            Next
        End If
        mvarWyznUruchomienia = False
        If dgvInformacje.Rows.Count > 0 Then
            dgvInformacje.ClearSelection()
            dgvInformacje.Rows.Item(mvarNumerPozycji).Selected = True

            If mvarNumerPozycji > 5 Then
                dgvInformacje.FirstDisplayedScrollingRowIndex = mvarNumerPozycji - 5
            Else
                dgvInformacje.FirstDisplayedScrollingRowIndex = 0
            End If
        End If
        If mvarWyznFrm Then
            ZnajdzOpakowanie()
        End If
    End Sub

    Private Sub dgvInformacje_CellMouseDoubleClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvInformacje.CellMouseDoubleClick
        If dgvInformacje.Rows.Count = 0 Then
            MessageBox.Show("Wybierz opakowanie.", "WIREMET")
        Else
            mvarNumerPozycji = dgvInformacje.SelectedRows(0).Index
            If mvarWyznFrm Then

                Me.Close()
            Else
                Dim lvarId As Integer
                lvarId = CInt(dgvInformacje.SelectedRows.Item(0).Cells("colIdPakowania").Value)

                Dim lvarFrm As New frmPakowanie(lvarId)
                With lvarFrm
                    .MdiParent = mdiMain.ActiveForm
                    .Show()
                End With
            End If
        End If
    End Sub

    Private Sub cmdSzukaj_Click(sender As System.Object, e As System.EventArgs) Handles cmdSzukaj.Click
        Szukaj()
    End Sub

    Private Sub cmdWyczysc_Click(sender As System.Object, e As System.EventArgs) Handles cmdWyczysc.Click
        txtNazwa.Text = String.Empty
    End Sub

    Private Sub cmdDodaj_Click(sender As System.Object, e As System.EventArgs) Handles cmdDodaj.Click

        If Not mvarWyznFrm Then
            Dim lvarFrm As New frmPakowanie(0)
            With lvarFrm
                .MdiParent = mdiMain.ActiveForm
                .Show()
            End With
        Else
            Dim lvarFrm As New frmPakowanie(0)
            lvarFrm.Location = New Point(410, 400)
            lvarFrm.ShowDialog()
            ' Szukaj()
        End If

    End Sub

    Private Sub cmdEdytuj_Click(sender As System.Object, e As System.EventArgs) Handles cmdEdytuj.Click

        If dgvInformacje.Rows.Count = 0 Then
            MessageBox.Show("Wybierz opakowanie.", "WIREMET")
        Else
            Dim lvarId As Integer
            mvarNumerPozycji = dgvInformacje.SelectedRows(0).Index
            lvarId = CInt(dgvInformacje.SelectedRows.Item(0).Cells("colIdPakowania").Value)

            Dim lvarFrm As New frmPakowanie(lvarId)
            If mvarId <> -1 Then
                lvarFrm.Location = New Point(380, 350)
                With lvarFrm
                    .ShowDialog()
                End With
            Else
                With lvarFrm
                    .MdiParent = frmPakowanieSzukanie.ActiveForm
                    .Show()
                End With
            End If
           
        End If

    End Sub

    Private Sub cmdWyczyscInformacje_Click(sender As System.Object, e As System.EventArgs) Handles cmdWyczyscInformacje.Click
        dgvInformacje.Rows.Clear()
    End Sub


    Private Sub txtNazwa_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtNazwa.KeyPress

        If e.KeyChar = Char.ConvertFromUtf32(Keys.Enter) Then
            Szukaj()
        End If

    End Sub

    Private Sub txtNazwa_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNazwa.TextChanged
        mvarNumerPozycji = 0
    End Sub


    Private Sub frmPakowanieSzukanie_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
        mvarWyznUruchomienia = True
        cmdSzukaj.PerformClick()
    End Sub

    Private Sub frmPakowanieSzukanie_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        mvarDbHolder.Close()
    End Sub

End Class
